package demo3;

class Money implements Cloneable{
    public double money=12.5;

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}
class Student implements Cloneable {
    public int age;

    public Money m = new Money();

    public Student(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "age=" + age +
                '}';
    }

    //    @Override
//    protected Object clone() throws CloneNotSupportedException {
//       return super.clone();
//        Student tmp=(Student) super.clone();
//        tmp.m= (Money) this.m.clone();
//        return tmp;
//    }
//}
    public class Test {
        public static void main(String[] args) throws CloneNotSupportedException {
            Student student1 = new Student(20);
            Student student2 = (Student) student1.clone();
            System.out.println(student2);
            System.out.println("=========");
            System.out.println(student1.m.money);
            System.out.println(student2.m.money);
            System.out.println("###########");
            student2.m.money = 100;//浅拷贝
            System.out.println(student1.m.money);
            System.out.println(student2.m.money);

        }
    }
}
